// package org.slf4j;
//
// import com.cdn.log.config.ClogProperties;
// import com.cdn.log.consts.CLogConst;
// import com.cdn.log.utils.IdUtil;
// import org.aopalliance.intercept.MethodInterceptor;
// import org.aopalliance.intercept.MethodInvocation;
// import org.apache.commons.logging.Log;
// import org.apache.commons.logging.LogFactory;
// import org.springframework.aop.aspectj.AspectJExpressionPointcutAdvisor;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.context.annotation.Bean;
// import org.springframework.util.StringUtils;
// import org.springframework.web.context.request.RequestContextHolder;
// import org.springframework.web.context.request.ServletRequestAttributes;
//
// import javax.servlet.http.HttpServletRequest;
//
// /**
//  * @author 蔡定努
//  *  2023/10/07 13:34
//  */
// public class ClogAopInterceptor implements MethodInterceptor {
//     @Autowired
//     private ClogProperties clogProperties;
//     @Override
//     public Object invoke(MethodInvocation methodInvocation) throws Throwable {
//         String s = MDC.get(CLogConst.TRACE_ID);
//         if (StringUtils.isEmpty(s)) {
//             ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//             HttpServletRequest request = attributes.getRequest();
//             String traceId = request.getHeader(CLogConst.TRACE_ID);
//             MDC.put(CLogConst.TRACE_ID, StringUtils.isEmpty(traceId) ? IdUtil.simpleId() : traceId);
//         }
//         //执行业务方法
//         Object result = methodInvocation.proceed();
//         MDC.remove(CLogConst.TRACE_ID);
//         return result;
//     }
//
//
//        final Logger logger = LoggerFactory.getLogger(this.getClass());
//
//     /**
//      *  aop方式
//      * @return
//      */
//     @Bean
//     public AspectJExpressionPointcutAdvisor logAdvisor() {
//         AspectJExpressionPointcutAdvisor advisor = new AspectJExpressionPointcutAdvisor();
//         advisor.setExpression("execution(* "+clogProperties.getControllerPackageName()+".*.*(..))");
//         advisor.setAdvice(this);
//         logger.info("aop express is: {}",advisor.getExpression());
//         return advisor;
//     }
// }
